// 导入 napi 相关宏和类型
use napi_derive_ohos::napi;
use napi_ohos::{Error, Result};

// 导入图像处理库
use image::{ImageBuffer, Rgba};

/// 内部函数：生成一个棋盘格图像
fn create_image(width: u32, height: u32) -> ImageBuffer<Rgba<u8>, Vec<u8>> {
    ImageBuffer::from_fn(width, height, |x, y| {
        if (x + y) % 2 == 0 {
            Rgba([255, 255, 255, 0]) // 白色透明
        } else {
            Rgba([0, 0, 0, 255])     // 黑色不透明
        }
    })
}

/// 暴露给 HarmonyOS 使用的接口：生成图像并保存到指定路径
#[napi]
pub fn generate_image(width: u32, height: u32, path: String) -> Result<()> {
    let img = create_image(width, height);
    img.save(path).map_err(|e| Error::from_reason(e.to_string()))
}

